import axios from "axios";
import myTokens from "./auth";
import { ElMessage } from "element-plus";
import router from "@/router";
import NProgress from 'nprogress'
// import  { Message } from 'element-plus';

const instance = axios.create({
    //访问node初始路径
    baseURL: 'https://www.mryang.fun/',
    // baseURL: 'http://www.mryang.fun/',
    timeout: 10000
  });
   
  //请求拦截器
  instance.interceptors.request.use(function (config:any) {
    if(myTokens.getToken()){
      //设置当前登录得令牌
      config.headers.Authorization="Bearer "+myTokens.getToken();
    }
    // 在发送请求之前做些什么
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });


  // 添加响应拦截器
  instance.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    NProgress.done()
    return response.data;
  }, function (error) {
    if (error.code === "ECONNABORTED") {
       ElMessage.error('请求网络超时')
        return;
    }

    if(error.response.status===401){
      //状态401跳转回登录页面， 异地登录，token发生变化会引起重新登录
      // router.push('/login');  
      ElMessage.error('请重新登录')
      router.push("/login")
       return;
    }

    
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  });

  export default instance




